package my;

import java.util.Map;

public class RSAExample {
    public static void main(String[] args) {
        try {
            // 1. 生成密钥对
            Map<String, String> keyPair = RSAUtils.generateKeyPair();
            String publicKey = keyPair.get("publicKey");
            String privateKey = keyPair.get("privateKey");
            
            System.out.println("公钥: " + publicKey);
            System.out.println("私钥: " + privateKey);


            // 2. 加密和解密示例
            String originalText = "zzr19961123"; // 模拟前端传入的明文密码
            String encryptedText = RSAUtils.encrypt(originalText, publicKey); // 公钥加密
            String decryptedText = RSAUtils.decrypt(encryptedText, privateKey); // 私钥解密

            System.out.println("加密前: " + originalText);
            System.out.println("加密后 (Base64): " + encryptedText);
            System.out.println("解密后: " + decryptedText);

            
            // 2. 加密数据
//            String originalText = "zzr19961123";
//            String encryptedText = RSAUtils.encrypt(originalText, publicKey);
//            System.out.println("加密后: " + encryptedText);
//
//            // 3. 解密数据
//            String decryptedText = RSAUtils.decrypt(encryptedText, privateKey);
//            System.out.println("解密后: " + decryptedText);
//
//            // 4. 签名验证
//            String signature = RSAUtils.sign(originalText, privateKey);
//            boolean isValid = RSAUtils.verify(originalText, publicKey, signature);
//            System.out.println("签名验证结果: " + isValid);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}